<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns:fb="http://www.facebook.com/2008/fbml" dir="ltr" lang="en-US"<head profile="http://gmpg.org/xfn/11">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />

<title>Proyecto 1 - Compiladores - Josué Rendón</title>
<!-- <link rel="stylesheet" type="text/css" href="style.css" /> -->
</head>
<body>
<h1>Proyecto 1 Compiladores - Josué Rendón</h1>
<?php 

include("stacks.php");
include("estadosAFD.php");
include("estadosAFN.php");
include("automata.php");
include("funciones.php");
include("thompson.php");
include("subconjuntos.php");

//Form para pedir la cadena y la expresión regular
echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post">
	<!--Cadena: <input type="text" name="cadena" />
	<br/>-->
	Ingrese Expresion Regular: <input type="text" name="ExpReg" />
	<input type="submit" name="submit" value="Evaluar"/>
</form>';

//Si la forma es submiteada
if(isset($_POST['submit'])) {
	//$cadena = $_POST["cadena"];	
	$regex = $_POST["ExpReg"];	
	echo '<ul><li>Texto Ingresado: '.$regex.'</li>';
		
	$palabrasReservadas = array ('(',')','*','|','+','?','&','.');
	
	//Pre-procesar la expresion regular
	$regex = preprocesar($regex,$palabrasReservadas);
	
	//Encontrar simbolos del alfabeto
	$alfabeto = getAlfabeto($regex,$palabrasReservadas);

	//Encontrar Operdadores en Uso
	$palabrasReservadasEnUso = getPalabrasReservadasEnUso($regex,$palabrasReservadas);

	//Convertir Regex de infix a Postfix
	echo '<li>Expresion Regular INFIX: '.$regex.'<small> (. = Concatenacion; & = Epsilon)</small></li>';
	$regex = infixPostfix($regex,$alfabeto);
	echo '<li>Expresion Regular POSTFIX: '.$regex.'</li>';	
	echo '<li>Expresion Regular POSTFIX Evaluada: '.evaluarPostfix($regex,$alfabeto).'</li></ul>';
	
	//Thompson
	$TablaEstadosAFN = thompson($regex,$alfabeto);

	//	echo '<pre>';					
	//	print_r($TablaEstadosAFN);
	//	echo '</pre>';	


	//Subconjuntos
	subconjuntos($TablaEstadosAFN,$alfabeto);
	
};
?>

</body>
</html>

